## API Report File for "@backstage/plugin-notifications"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts
/// <reference types="react" />

import { ApiRef } from '@backstage/core-plugin-api';
import { BackstagePlugin } from '@backstage/core-plugin-api';
import { DiscoveryApi } from '@backstage/core-plugin-api';
import { FetchApi } from '@backstage/core-plugin-api';
import { JSX as JSX_2 } from 'react';
import { Notification as Notification_2 } from '@backstage/plugin-notifications-common';
import { NotificationStatus } from '@backstage/plugin-notifications-common';
import { NotificationType } from '@backstage/plugin-notifications-common';
import { default as React_2 } from 'react';
import { RouteRef } from '@backstage/core-plugin-api';

// @public (undocumented)
export type GetNotificationsOptions = {
  type?: NotificationType;
  offset?: number;
  limit?: number;
  search?: string;
};

// @public (undocumented)
export interface NotificationsApi {
  // (undocumented)
  getNotification(id: string): Promise<Notification_2>;
  // (undocumented)
  getNotifications(
    options?: GetNotificationsOptions,
  ): Promise<Notification_2[]>;
  // (undocumented)
  getStatus(): Promise<NotificationStatus>;
  // (undocumented)
  updateNotifications(
    options: UpdateNotificationsOptions,
  ): Promise<Notification_2[]>;
}

// @public (undocumented)
export const notificationsApiRef: ApiRef<NotificationsApi>;

// @public (undocumented)
export class NotificationsClient implements NotificationsApi {
  constructor(options: { discoveryApi: DiscoveryApi; fetchApi: FetchApi });
  // (undocumented)
  getNotification(id: string): Promise<Notification_2>;
  // (undocumented)
  getNotifications(
    options?: GetNotificationsOptions,
  ): Promise<Notification_2[]>;
  // (undocumented)
  getStatus(): Promise<NotificationStatus>;
  // (undocumented)
  updateNotifications(
    options: UpdateNotificationsOptions,
  ): Promise<Notification_2[]>;
}

// @public (undocumented)
export const NotificationsPage: () => JSX_2.Element;

// @public (undocumented)
export const notificationsPlugin: BackstagePlugin<
  {
    root: RouteRef<undefined>;
  },
  {}
>;

// @public (undocumented)
export const NotificationsSidebarItem: (props?: {
  webNotificationsEnabled?: boolean;
  titleCounterEnabled?: boolean;
}) => React_2.JSX.Element;

// @public (undocumented)
export const NotificationsTable: (props: {
  onUpdate: () => void;
  type: NotificationType;
  notifications?: Notification_2[];
}) => React_2.JSX.Element;

// @public (undocumented)
export type UpdateNotificationsOptions = {
  ids: string[];
  done?: boolean;
  read?: boolean;
  saved?: boolean;
};

// @public (undocumented)
export function useNotificationsApi<T>(
  f: (api: NotificationsApi) => Promise<T>,
  deps?: any[],
):
  | {
      retry: () => void;
      loading: boolean;
      error?: undefined;
      value?: undefined;
    }
  | {
      retry: () => void;
      loading: false;
      error: Error;
      value?: undefined;
    }
  | {
      retry: () => void;
      loading: true;
      error?: Error | undefined;
      value?: T | undefined;
    }
  | {
      retry: () => void;
      loading: false;
      error?: undefined;
      value: T;
    };

// @public (undocumented)
export function useTitleCounter(): {
  setNotificationCount: (newCount: number) => void;
};

// @public (undocumented)
export function useWebNotifications(): {
  sendWebNotification: (options: {
    title: string;
    description: string;
    link?: string;
  }) => Notification | null;
};

// (No @packageDocumentation comment for this package)
```
